1 位追蹤者

測試

測試是軟體開發的重要環節。無論我們是否意識到,我們都在持續進行測試。例如,當我們在 PHP 中編寫一個類別時,我們可能會逐步偵錯,或者只是使用 echodie 語句來驗證實作是否按照我們的初始計劃運作。在 Web 應用程式的情況下,我們會於表單中輸入一些測試資料,以確保頁面與我們的互動符合預期。

測試流程可以自動化,以便每次需要驗證某些內容時,我們只需要調用為我們執行驗證的程式碼即可。驗證結果是否與我們計劃相符的程式碼稱為測試,而其建立和後續執行的過程稱為自動化測試,這是這些測試章節的主要主題。

使用測試進行開發

測試驅動開發 (TDD) 和行為驅動開發 (BDD) 是軟體開發方法,透過在編寫實際程式碼之前,將一段程式碼或整個功能的行為描述為一組情境或測試,然後才建立允許這些測試通過的實作,從而驗證是否實現了預期的行為。

開發功能的流程如下

  • 建立一個新的測試,描述要實作的功能。
  • 執行新測試,並確保它失敗。這是預期的,因為還沒有實作。
  • 編寫簡單的程式碼以使新測試通過。
  • 執行所有測試,並確保它們全部通過。
  • 改進程式碼,並確保測試仍然正常。

完成後,針對另一個功能或改進重複此流程。如果要變更現有功能,也應變更測試。

提示:如果您覺得在進行許多小型而簡單的迭代時浪費時間,請嘗試在您的測試情境中涵蓋更多內容,以便在再次執行測試之前完成更多工作。如果您偵錯過多,請嘗試反向操作。

在進行任何實作之前建立測試的原因是,它使我們能夠專注於我們想要實現的目標,然後完全投入「如何做到」。通常,當涉及到功能調整或耦合較少的組件時,這會帶來更好的抽象和更輕鬆的測試維護。

因此,總結此方法的優點如下

  • 讓您一次專注於一件事,從而改進計劃和實作。
  • 產生測試涵蓋更多功能,更詳細,即如果測試正常,則很可能沒有任何損壞。

從長遠來看,它通常會為您帶來良好的時間節省效果。

何時以及如何測試

雖然上面描述的測試優先方法對於長期且相對複雜的專案很有意義,但對於較簡單的專案來說可能過於繁瑣。以下是一些適用時機的指標

  • 專案已經很大且複雜。
  • 專案需求開始變得複雜。專案不斷成長。
  • 專案旨在長期進行。
  • 失敗的代價太高。

建立涵蓋現有實作行為的測試沒有任何問題。

  • 專案是需要逐步更新的舊專案。
  • 您有一個專案要處理,但它沒有測試。

在某些情況下,任何形式的自動化測試都可能過於繁瑣

  • 專案很簡單,並且不會變得更複雜。
  • 這是一個一次性專案,將不再進行。

但如果您有時間,在這些情況下自動化測試也是好的。

延伸閱讀

  • 測試驅動開發:範例 / Kent Beck。ISBN:0321146530。

發現錯字或您認為此頁面需要改進?
在 github 上編輯 !